package com.dora.common.valid;

import jakarta.validation.Constraint;
import jakarta.validation.Payload;

import java.lang.annotation.*;


/**
 * 自定义校验分组
 */
@Documented // 说明该注解将被包含在javadoc中
//指定自定义校验注解使用哪个校验器进行校验，为空就是在使用时指定
//我这个校验注解可以配置多个校验器，以匹配不同字段类型的需求。
@Constraint(
        validatedBy = {ListValueConstraintValidator.class}
)
// 注解所修饰的对象的类型
@Target({ElementType.METHOD, ElementType.FIELD, ElementType.ANNOTATION_TYPE, ElementType.CONSTRUCTOR, ElementType.PARAMETER, ElementType.TYPE_USE})
// 注解所修饰的对象的生命周期
@Retention(RetentionPolicy.RUNTIME)
public @interface ListValue {

//    下面这三个属性message，groups，payload都是自定义校验分组中必须要有的默认值。
    String message() default "{com.dora.common.valid.ListValue.message}";

    Class<?>[] groups() default {};

    Class<? extends Payload>[] payload() default {};

    int[] vals() default {};











}
